import java.util.*;

/**
 * @author LKQ
 * @date 2022/4/19 8:59
 * @description
 */
public class Solution {
    public static void main(String[] args) {
        Solution solution = new Solution();
        String[] str = {"aba","cdc","eae"};
        solution.findLUSlength(str);
    }
    public int findLUSlength(String[] strs) {
        // 字符串按长度降序
        Arrays.sort(strs, (a, b)-> b.length() - a.length());
        for (int i = 0; i < strs.length; i++) {
            boolean flag = true;
            for (int j = 0; j < strs.length; j++) {
                // 枚举每一个字符串strs[i]， 判断其余的字符串是否是它的子序列。
                if (i != j && isSubsequence(strs[i], strs[j])){
                    flag = false;
                    break;
                }
            }
            if (flag) {
                // 由于长度降序后，直接返回第一个不是其他字符串子序列的字符串长度
                return strs[i].length();
            }
        }
        return -1;
    }

    private boolean isSubsequence(String x, String y) {
        // x 长度大于 y，那么返回false
        if (x.length() > y.length()) {
            return false;
        }
        int j = 0;
        for (int i = 0; i < y.length() && j < x.length(); i++) {
            if (x.charAt(j) == y.charAt(i)) {
                j++;
            }
        }
        // 如果 x全部遍历完，那么说明x是y的子序列，-> x的子序列也一定是y的子序列
        return j == x.length();
    }


}
